package bdsimple.impl.mysql;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import bdsimple.abstractfactory.AbstractFactoryDAO;
import bdsimple.dao.base.PropiedadDAO;
import bdsimple.dao.base.PropiedadVampiroDAO;
import bdsimple.dto.base.PropiedadDTO;
import bdsimple.dto.base.PropiedadVampiroDTO;
import dao.base.impl.BaseDTO;

public class PropiedadDTOImpl extends BaseDTO implements PropiedadDTO {


	
	public PropiedadDTOImpl() {
		super(PropiedadDAO.class);
	}

	// ---------------------------------------------------------------------------

	private String nombre;
	
	private String descripcion;
	
	private int minimoSirvientes;
	
	private int seguridadMinima;
	
	private int seguridadMaxima;
	
	private List<PropiedadVampiroDTO> propiedadVampiroDTOList;

	// ---------------------------------------------------------------------------
	
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	// ---------------------------------------------------------------------------
	
	public String getDescripcion(){
		return descripcion;
	}
	
	public void   setDescripcion(String descripcion){
		this.descripcion = descripcion;
	}
	
	// ---------------------------------------------------------------------------

	public int getMinimoSirvientes() {
		return minimoSirvientes;
	}

	public void setMinimoSirvientes(int minimoSirvientes) {
		this.minimoSirvientes = minimoSirvientes;
	}
	
	// ---------------------------------------------------------------------------

	public int getSeguridadMinima() {
		return seguridadMinima;
	}

	public void setSeguridadMinima(int seguridadMinima) {
		this.seguridadMinima = seguridadMinima;
	}
	
	// ---------------------------------------------------------------------------

	public int getSeguridadMaxima() {
		return seguridadMaxima;
	}

	public void setSeguridadMaxima(int seguridadMaxima) {
		this.seguridadMaxima = seguridadMaxima;
	}
	
	// ---------------------------------------------------------------------------

	@SuppressWarnings("unchecked")
	public List<PropiedadVampiroDTO> getPropiedadVampiroDTOList() {
		if (propiedadVampiroDTOList == null) {
			try {

				// Lazy load the list
				PropiedadVampiroDAO terjetaMemoriaVampiroDAO = (PropiedadVampiroDAO) AbstractFactoryDAO
						.getFactoryDAO(). //
						getDAO(PropiedadVampiroDAO.class, connectionBean);

				propiedadVampiroDTOList = new ArrayList<PropiedadVampiroDTO>();
				propiedadVampiroDTOList.addAll((Collection<? extends PropiedadVampiroDTO>) // 
						terjetaMemoriaVampiroDAO
								.listBy(PropiedadVampiroDTOImpl.ID, id));

			} catch (Exception e) {
				throw new RuntimeException(e);
			}
		}

		return propiedadVampiroDTOList;
	}

	public void setPropiedadVampiroDTOList(List<PropiedadVampiroDTO> propiedadVampiroDTOList) {
		throw new UnsupportedOperationException();
	} 
	
	// ---------------------------------------------------------------------------
	
}
